/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package CRUD;

import Beans.BeanUsuario;
import Conexao.ConexaoBanco;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Marcos
 */
public class CRUDUsuario {
    
    public Connection conexao;

    public CRUDUsuario() throws SQLException {
        this.conexao = ConexaoBanco.getConexao();
    }
    
    public void adiciona(BeanUsuario BU) throws SQLException {
        String sql = "insert into login(usuario, senha, status)" + "values(?,?,?)";
        PreparedStatement stmt = conexao.prepareStatement(sql);        
        //stmt.setInt(1, BU.getCod_usuario());
        stmt.setString(1, BU.getUsuario());              
        stmt.setString(2, BU.getSenha());              
        stmt.setString(3, BU.getStatus());              
        stmt.execute();
        stmt.close();
    }
    
    public void altera(BeanUsuario BU) throws SQLException {
        String sql = "update login set status = ?, senha = ?"
                + " WHERE cod_usuario = ? ";
        PreparedStatement stmt = conexao.prepareStatement(sql);
        stmt.setString(1, BU.getStatus());        
        stmt.setString(2, BU.getSenha());        
        stmt.setInt(3, BU.getCod_usuario());                
        stmt.execute();
        stmt.close();
    }
    
    public List<BeanUsuario> getListaUsuario() throws SQLException {
        String sql = "select * from login where status = 'A'";       

        PreparedStatement stmt = this.conexao.prepareStatement(sql);
        //stmt.setString(1, den_cidade);        
        ResultSet rs = stmt.executeQuery();
        List<BeanUsuario> ListaUsuario = new ArrayList<BeanUsuario>();
        while (rs.next()) {
            BeanUsuario BU = new BeanUsuario();
            BU.setCod_usuario(rs.getInt("cod_usuario"));            
            BU.setUsuario(rs.getString("usuario"));            
            ListaUsuario.add(BU);
        }
        rs.close();
        stmt.close();
        return ListaUsuario;
    } 
    
    public List<BeanUsuario> getListaUsuarioNom(String nom_usuario) throws SQLException {
        String sql = "select * from login where status = 'A' and usuario = ?";       

        PreparedStatement stmt = this.conexao.prepareStatement(sql);
        stmt.setString(1, nom_usuario);        
        ResultSet rs = stmt.executeQuery();
        List<BeanUsuario> ListaUsuario = new ArrayList<BeanUsuario>();
        while (rs.next()) {
            BeanUsuario BU = new BeanUsuario();
            BU.setCod_usuario(rs.getInt("cod_usuario"));            
            BU.setUsuario(rs.getString("usuario"));            
            ListaUsuario.add(BU);
        }
        rs.close();
        stmt.close();
        return ListaUsuario;
    } 
    
    public List<BeanUsuario> getListaUsuarioNomLike(String nom_usuario) throws SQLException {
        String sql = "select * from login where usuario like ?";       

        PreparedStatement stmt = this.conexao.prepareStatement(sql);
        stmt.setString(1, nom_usuario);        
        ResultSet rs = stmt.executeQuery();
        List<BeanUsuario> ListaUsuario = new ArrayList<BeanUsuario>();
        while (rs.next()) {
            BeanUsuario BU = new BeanUsuario();
            BU.setCod_usuario(rs.getInt("cod_usuario"));            
            BU.setUsuario(rs.getString("usuario"));            
            BU.setSenha(rs.getString("senha"));            
            BU.setStatus(rs.getString("status"));            
            ListaUsuario.add(BU);
        }
        rs.close();
        stmt.close();
        return ListaUsuario;
    }
}